package com.luckyframe.project.jmeter.jmeterTestPlanRecord.service;

import com.luckyframe.common.support.Convert;
import com.luckyframe.project.jmeter.jmeterTestCase.domain.JmeterTestCase;
import com.luckyframe.project.jmeter.jmeterTestPlan.domain.JmeterTestPlan;
import com.luckyframe.project.jmeter.jmeterTestPlanRecord.domain.JmeterTestPlanRecord;
import com.luckyframe.project.jmeter.jmeterTestPlanRecord.enums.JmeterPlanRecordStatus;
import com.luckyframe.project.jmeter.jmeterTestPlanRecord.enums.PlanRecordTypeEnum;
import com.luckyframe.project.jmeter.jmeterTestPlanRecord.mapper.JmeterTestPlanRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * jmx测试计划执行记录 服务层实现
 * 
 * @author lancelot
 * @date 2020-10-09
 */
@Service
public class JmeterTestPlanRecordServiceImpl implements IJmeterTestPlanRecordService 
{
	@Autowired
	private JmeterTestPlanRecordMapper jmeterTestPlanRecordMapper;

	/**
     * 查询jmx测试计划执行记录信息
     * 
     * @param id jmx测试计划执行记录ID 主键ID
     * @return jmx测试计划执行记录信息 基础信息
     */
    @Override
	public JmeterTestPlanRecord selectJmeterTestPlanRecordById(Long id)
	{
	    return jmeterTestPlanRecordMapper.selectJmeterTestPlanRecordById(id);
	}
	
	/**
     * 查询jmx测试计划执行记录列表
     * 
     * @param jmeterTestPlanRecord jmx测试计划执行记录信息 基础信息
     * @return jmx测试计划执行记录集合
     */
	@Override
	public List<JmeterTestPlanRecord> selectJmeterTestPlanRecordList(JmeterTestPlanRecord jmeterTestPlanRecord)
	{
	    return jmeterTestPlanRecordMapper.selectJmeterTestPlanRecordList(jmeterTestPlanRecord);
	}
	
    /**
     * 新增jmx测试计划执行记录
     * 
     * @param jmeterTestPlanRecord jmx测试计划执行记录信息 基础信息
     * @return 结果
     */
	@Override
	public int insertJmeterTestPlanRecord(JmeterTestPlanRecord jmeterTestPlanRecord)
	{
	    return jmeterTestPlanRecordMapper.insertJmeterTestPlanRecord(jmeterTestPlanRecord);
	}
	
	/**
     * 修改jmx测试计划执行记录
     * 
     * @param jmeterTestPlanRecord jmx测试计划执行记录信息 基础信息
     * @return 结果
     */
	@Override
	public int updateJmeterTestPlanRecord(JmeterTestPlanRecord jmeterTestPlanRecord)
	{
	    return jmeterTestPlanRecordMapper.updateJmeterTestPlanRecord(jmeterTestPlanRecord);
	}

	/**
     * 删除jmx测试计划执行记录对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteJmeterTestPlanRecordByIds(String ids)
	{
		return jmeterTestPlanRecordMapper.deleteJmeterTestPlanRecordByIds(Convert.toStrArray(ids));
	}

    @Override
    public JmeterTestPlanRecord getPlanLevelRecord(Long id) {
		return jmeterTestPlanRecordMapper.getPlanLevelRecord(id);
	}

	public JmeterTestPlanRecord saveRecord(JmeterTestPlan jmeterTestPlan, JmeterTestCase testCase, JmeterPlanRecordStatus status) {
		JmeterTestPlanRecord planRecord;
		planRecord = new JmeterTestPlanRecord();
		planRecord.setRelCaseId(testCase.getId());
		planRecord.setRelPlanId(jmeterTestPlan.getId());
		planRecord.setRelCaseName(testCase.getCaseName());
		planRecord.setRelPlanName(jmeterTestPlan.getName());
		planRecord.setStatus(status.getCode());
		planRecord.setCreateTime(new Date());
		planRecord.setType(PlanRecordTypeEnum.CASE_LEVEL.getCode());
		insertJmeterTestPlanRecord(planRecord);
		return planRecord;
	}



}
